package br.com.sgpv2.entity.movimentacao;

import java.text.SimpleDateFormat;
import java.util.Date;

public enum SalarioFamiliaEnum {
	
	NIVEL1_2013("01012013", "31122013", 0d, 646.55d, 33.16d), NIVEL2_2013(
			"01012013", "31122013", 646.56, 971.78, 23.36d), NIVEL3_2013(
			"01012013", "31122013", 971.79d, 99999999999999d, 0.0d);

	private String dataInicio;
	private String dataFim;
	private Double valorInicio;
	private Double valorFinal;
	private Double valorBeneficio;

	private SalarioFamiliaEnum(String dataInicio, String dataFim, Double valorInicio,
			Double valorFinal, Double valorBeneficio) {
		this.dataInicio = dataInicio;
		this.dataFim = dataFim;
		this.valorInicio = valorInicio;
		this.valorFinal = valorFinal;
		this.valorBeneficio = valorBeneficio;
	}

	public static Double obterTaxa(Date data, Double valor) {

		if (data != null && valor != null) {
			SimpleDateFormat format = new SimpleDateFormat("ddMMyyyy");
			String dataStr = format.format(data);

			for (SalarioFamiliaEnum enumAtual : SalarioFamiliaEnum.values()) {
				if (enumAtual.getDataInicio().compareTo(dataStr) <= 0
						&& enumAtual.getDataFim().compareTo(dataStr) >= 0
						&& enumAtual.getValorInicio().compareTo(valor) <= 0
						&& enumAtual.getValorFinal().compareTo(valor) >= 0) {
					return enumAtual.getValorBeneficio();
				}
			}
		}

		return null;
	}

	public String getDataInicio() {
		return dataInicio;
	}

	public void setDataInicio(String dataInicio) {
		this.dataInicio = dataInicio;
	}

	public String getDataFim() {
		return dataFim;
	}

	public void setDataFim(String dataFim) {
		this.dataFim = dataFim;
	}

	public Double getValorInicio() {
		return valorInicio;
	}

	public void setValorInicio(Double valorInicio) {
		this.valorInicio = valorInicio;
	}

	public Double getValorFinal() {
		return valorFinal;
	}

	public void setValorFinal(Double valorFinal) {
		this.valorFinal = valorFinal;
	}

	public Double getValorBeneficio() {
		return valorBeneficio;
	}

	public void setValorBeneficio(Double valorBeneficio) {
		this.valorBeneficio = valorBeneficio;
	}


}
